package gek.uni.diplom.ocl.example.patterns.hierarhical;

public class FeatureCallPattern extends AChangeableCodeNode{
//
//  /**
//   * Секция определения переменной
//   */
//  private String declareSection = "";
//
//  String getterInitString = null;
//  String getterCallString = null;
//  String setterInitString = null;
//  String setterCallString = null;
//
  public FeatureCallPattern(String oclString) {
    super(oclString, null);
  }

  public FeatureCallPattern(String oclString, IPattern parent) {
    super(oclString, parent);
  }
//
//  public String getDeclareSection() {
//    return declareSection;
//  }
//
//  public void setDeclareSection(String declareSection) {
//    this.declareSection = declareSection;
//  }
//
//  public String getGetterInitString() {
//    return getterInitString;
//  }
//
//  public void setGetterInitString(String getterInitString) {
//    this.getterInitString = getterInitString;
//  }
//
//  public String getGetterCallString() {
//    return getterCallString;
//  }
//
//  public void setGetterCallString(String getterCallString) {
//    this.getterCallString = getterCallString;
//  }
//
//  public String getSetterInitString() {
//    return setterInitString;
//  }
//
//  public void setSetterInitString(String setterInitString) {
//    this.setterInitString = setterInitString;
//  }
//
//  public String getSetterCallString() {
//    return setterCallString;
//  }
//
//  public void setSetterCallString(String setterCallString) {
//    this.setterCallString = setterCallString;
//  }

  /**
   * Множество имен объявленных переменных
   */
  // private Set<String> declaredVariableNames = new LinkedHashSet<String>();

  /**
   * Мапа <имя переменной -> строковое представление выражения, определяющего
   * переменную>
   */
  // private Map<String, String> name2declaration = new HashMap<String,
  // String>();

  /**
   * Мапа <имя переменной -> строковое представление выражения,
   * инициализирующего переменную>
   */
  // private Map<String, String> name2initial = new HashMap<String, String>();

  // TODO Коммент
  // private Map<String, String> reference2trueInitialization =
  // new HashMap<String, String>();

  // TODO Коммент
  // private Map<String, String> reference2falseInitialization =
  // new HashMap<String, String>();

  // private Map<String, String> ocl2reference = new HashMap<String, String>();

  /**
   * Мапа <имя переменной -> множество классов для импорта>
   */
  // private Map<String, Set<String>> name2import =
  // new HashMap<String, Set<String>>();

  /**
   * Карта <oclВыражение для вызова свойства -> код инициализации get-метода>
   */
  // private Map<String, String> propertyOcl2GetterInitString =
  // new HashMap<String, String>();

  /**
   * Карта <oclВыражение для вызова свойства -> код вызова get-метода>
   */
  // private Map<String, String> propertyOcl2GetterCallString =
  // new HashMap<String, String>();

  /**
   * Карта <oclВыражение для вызова свойства -> код инициализации set-метода>
   */
  // private Map<String, String> propertyOcl2SetterInitString =
  // new HashMap<String, String>();

  /**
   * Карта <oclВыражение для вызова свойства -> код вызова set-метода>
   */
  // private Map<String, String> propertyOcl2SetterCallString =
  // new HashMap<String, String>();

  /**
   * Множество строк, определяющих импортируемые пакеты
   */
  // private Set<String> importStrings = new HashSet<String>();

  /**
   * Карта <ocl-операция -> строки кода, выполняющие необходимые действия по
   * инициализации>
   */
  // private Map<String, String> operationOcl2OperationInitString =
  // new HashMap<String, String>();

  //  
  // public String getDeclareSection() {
  // return declareSection == null ? "" : declareSection;
  // }
  //
  // public void setDeclareSection(String declareSection) {
  // this.declareSection = declareSection;
  // }
  //
  // // public void addDeclarationSection(String varName, String declaration)
  // // throws ErrorException {
  // // String declarationString = name2declaration.get(varName);
  // // if (declarationString != null)
  // // throw new ErrorException("Переменная " + varName + "уже определена");
  // // else
  // // name2declaration.put(varName, declaration);
  // // }
  // //
  // // public String getDeclarationString(String varName) {
  // // return name2declaration.get(varName) == null ? "" : name2declaration
  // // .get(varName);
  // // }
  //
  // public void addInitializationSection(String varName, String initial)
  // throws ErrorException {
  //
  // String initialString = name2initial.get(varName);
  // if (initialString != null)
  // throw new ErrorException("Переменная " + varName
  // + " уже инициализирована");
  // else
  // name2initial.put(varName, initial);
  // }
  //
  // public String getInitializationSection(String varName) {
  // return name2initial.get(varName) == null ? "" : name2initial.get(varName);
  // }
  //
  // // public void addImportSection(String varName, String name) {
  // // name2import.get(varName);
  // // }
  //
  // public void addImportString(String importString) {
  // importStrings.add(importString);
  // }
  //
  // public void addImportStrings(Collection<String> importStrings) {
  // this.importStrings.addAll(importStrings);
  // }
  //
  // public Collection<String> getImportStrings() {
  // return importStrings;
  // }
  //
  // public void setTrueInitialization(String referenceString,
  // String initialization) throws ErrorException {
  // String initString = reference2trueInitialization.get(referenceString);
  // if (initString != null)
  // throw new ErrorException("Объект " + referenceString
  // + " уже true-инициализирован ");
  // reference2trueInitialization.put(referenceString, initialization);
  //
  // }
  //
  // public String getTrueInitialization(String referenceString) {
  // return reference2trueInitialization.get(referenceString) == null ? ""
  // : reference2trueInitialization.get(referenceString);
  // }
  //
  // public void setFalseInitialization(String referenceString,
  // String initialization) throws ErrorException {
  // String initString = reference2falseInitialization.get(referenceString);
  // if (initString != null)
  // throw new ErrorException("Объект " + referenceString
  // + " уже false-инициализирован");
  // reference2falseInitialization.put(referenceString, initialization);
  //
  // }
  //
  // public String getFalseInitialization(String referenceString) {
  // return reference2falseInitialization.get(referenceString) == null ? ""
  // : reference2falseInitialization.get(referenceString);
  // }
  //
  // // public void setReference(String ocl, String reference) throws
  // ErrorException {
  // // if (ocl2reference.get(ocl) != null)
  // // throw new ErrorException("Для выражения " + ocl
  // // + " уже есть строка для ссылки на объект");
  // // ocl2reference.put(ocl, reference);
  // // }
  //
  // // public String getReference(String ocl) {
  // // return ocl2reference.get(ocl) == null ? "" : ocl2reference.get(ocl);
  // // }
  //
  // public void removeFalseInitialization(String reference) {
  // if (reference != null) reference2falseInitialization.remove(reference);
  // }
  //
  // public void removeTrueInitialization(String reference) {
  // if (reference != null) reference2trueInitialization.remove(reference);
  // }
  //
  // public void setGetterInitString(String propertyOclString,
  // String propertyGetter) throws ErrorException {
  //
  // String prevPropertyGetter =
  // propertyOcl2GetterInitString.get(propertyOclString);
  // if (prevPropertyGetter != null)
  // throw new ErrorException("Для выражения " + propertyOclString
  // + " уже сгенерирован код инициализации get-метода");
  // propertyOcl2GetterInitString.put(propertyOclString, propertyGetter);
  // }
  //
  // public String getGetterInitString(String propertyOclString) {
  // return propertyOcl2GetterInitString.get(propertyOclString) == null ? ""
  // : propertyOcl2GetterInitString.get(propertyOclString);
  // }
  //
  // public void setGetterCallString(String propertyOclString,
  // String propertyGetterCall) throws ErrorException {
  //
  // String prevPropertyGetterCallString =
  // propertyOcl2GetterCallString.get(propertyOclString);
  // if (prevPropertyGetterCallString != null)
  // throw new ErrorException("Для выражения " + propertyOclString
  // + " уже сгенерирован код вызова get-метода");
  // propertyOcl2GetterCallString.put(propertyOclString, propertyGetterCall);
  // }
  //
  // public String getGetterCallString(String propertyOclString) {
  // return propertyOcl2GetterCallString.get(propertyOclString) == null ? ""
  // : propertyOcl2GetterCallString.get(propertyOclString);
  // }
  //
  // public void setSetterInitString(String propertyOclString,
  // String propertySetterInitString) throws ErrorException {
  //
  // String prevPropertySetter =
  // propertyOcl2SetterInitString.get(propertyOclString);
  // if (prevPropertySetter != null)
  // throw new ErrorException("Для выражения " + propertyOclString
  // + " уже сгенерирован код set-метода");
  // propertyOcl2SetterInitString.put(propertyOclString,
  // propertySetterInitString);
  // }
  //
  // public String getSetterInitString(String propertyOclString) {
  // return propertyOcl2SetterInitString.get(propertyOclString) == null ? ""
  // : propertyOcl2SetterInitString.get(propertyOclString);
  // }
  //
  // public void setSetterCallString(String propertyOclString,
  // String propertySetterCallString) throws ErrorException {
  // String prevPropertySetter =
  // propertyOcl2SetterCallString.get(propertyOclString);
  // if (prevPropertySetter != null)
  // throw new ErrorException("Для выражения " + propertyOclString
  // + " уже сгенерирован код set-метода");
  // propertyOcl2SetterCallString.put(propertyOclString,
  // propertySetterCallString);
  // }
  //
  // public String getSetterCallString(String propertyOclString) {
  // return propertyOcl2SetterCallString.get(propertyOclString) == null ? ""
  // : propertyOcl2SetterCallString.get(propertyOclString);
  // }
  //
  // public void setOperationInitString(String operationOclString,
  // String initOperationString) throws ErrorException {
  // String prevOperationInitString =
  // operationOcl2OperationInitString.get(operationOclString);
  // if (prevOperationInitString != null)
  // throw new ErrorException("Для выражения (операции) " + operationOclString
  // + " уже сгенерирован код инициализации");
  // operationOcl2OperationInitString.put(operationOclString,
  // initOperationString);
  // }
  //
  // public String getOperationInitString(String operationOclString) {
  // return operationOcl2OperationInitString.get(operationOclString) == null ?
  // ""
  // : operationOcl2OperationInitString.get(operationOclString);
  // }

}
